home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
system
/
csvs.zip
/
CSVS.DOC
< prev
next >
Wrap
Text File
|
1987-04-20
|
29KB
|
521 lines
The Computer Shopper PC Clone Validation Test
By Andrew M. Fried & Kenneth McMillen
Introduction
------------
There has never been a better time to purchase an IBM clone microcomputer than
today. Overseas production and fierce competition have made the computer
consumer master of the industry.
There is generally one question facing most prospective buyers of clone
computers, and that is whether or not the system is, in fact, a true
compatible.
Beginning next month, Comupter Shopper will add another program to its list of
programs used to test a systems compatibility with that of the PC. This
program, called BIOSTEST, invokes almost all of the ROM BIOS calls and checks
them for proper operation.
The purpose of this article is to discuss the various interrupts available in
ROM BIOS and how they can be checked for compatiblity.
Interrupt 5 - Print Screen
--------------------------
When the combination of the Shift-PrtScr keys are simultaneously depressed,
the ROM BIOS generates an interrupt type 5. This interrupt causes the
contents of the screen to be sent to LPT1:.
Our test of this interrupt is simple and straightforward. To begin with, a
ROM BIOS call is made to determine the current video mode. Once the video
mode is known, the active screen memory is known.
The contents of the current screen are saved into a buffer so that they may be
restored upon completion of the test. In order to insure that there is, in
fact, something on the screen to print, a series of printable ASCII characters
are generated and displayed onto the active screen. These characters are
printed sequentially from chr(32) up to chr(127).
BIOSTEST then generates an Interrupt 5. It becomes the responsibility of ROM
BIOS to transfer everything on the screen onto the printer.
Once the interrupt has finished, BIOSTEST restores the screen to its original
condition and waits for you to press a key to continue. In order to determine
whether or not the interrupt functioned properly, you must examine the printer
output to see if the pattern appears correct.
Interrupt 10 - Video I/O
------------------------
ROM-BIOS has a set of routines which handle various video functions. These
routines set screen modes, move and find the cursor's position, select active
graphic pages, up/down scrolling, read/write characters with attributes,
read/write dots, and color selections. Some of them are practical if program
speed is not a problem. However if you wish to do some fancy graphics that
are quick then using these routines are not for you. Their performance is
slow as you will see with the dot testing. The nicer functions are the screen
scrolling and active page selection. To take advantage of the graphics you
will need a color monitor.
Before the test begins it checks to see what type of monitor you are using.
If you are using a monochrome monitor the program will only do the tests
which apply to a monochrome display. There are sixteen functions with this
interrupt. The test will step through each one and ask you to press any key
at the end of each test to continue on to the next one. Some of the tests
will display a pass or fail message while the rest of them require you to
look at the screen to verify certain conditions. Each of the tests will have
a header at the top of the screen to let you know what is being tested.
The first test that is tried is the verification of a table in ROM-BIOS that
contains video initialization parameters. When you boot your system or power
it on the built in diagnostics look at the switch settings for the monitor
type and set up the video card with the correct parameters from this table.
If one of the parameters do not match then the test fails. This table needs
to match 100% if you system is to be compatible.
The next test deals with setting screen modes. If you are using a monochrome
display then there is only one mode. For the color display there are seven
different modes. You should see each of the seven modes set (40x25 BW, 40x25
color, 80x25 BW, 80x25 color, 320x200 color, 320x200 BW, and 640x200 BW).
Using this next function you can set up your cursor type. In the monochrome
mode your cursor is made up of thirteen lines whereas in the color mode you
have just seven. If you use this function it needs the starting and ending
line. This test should display a solid cursor, starting at cursor line zero
and ending at seven or thirteen.
The next two tests position and read the cursor's location. The first test
positions the cursor at row four, column twelve and prints the letter 'X'.
You need to verify this by looking at the screen. The other test does the
same thing and then reads the location of the cursor which should be at row
four, column thirteen. On the screen you should see the blinking cursor at
this position. Press any key when you have finished with each test.
Function number four of this interrupt reads the position of a light pen.
This test was not included since most everyone does not have a light pen.
Function number five selects the active page to display. To fully utilize all
of the memory on the video card IBM included this function which gives you
multiple pages of text. In a 40x25 screen mode you have a total of eight
pages of text that you could flip through if your application takes advantage
of this. In an 80x25 mode you get just four since you are using twice as
much video memory. This function works only with color displays. The test
will first use the 80x25 mode and fill up all four pages with the page
number. Then the test will ask you to press any key to flip through the four
pages verifying that each screen page is filled with the proper page number.
If so then this test passes.
The next two tests test the scrolling functions. The first one fills the
screen with text and scrolls up a window of text. The second on does the same
except it scrolls down a window of text. If you see this happen then both of
these tests pass. You can also see what the character set will look like.
The next three tests deal with the character handling routines. The first
will display a test pattern made up of all the attribute capabilites
(underline, color, blinking...). The test will read the pattern from the
screen and if it matches the test passes. The next test writes the test
pattern on the screen and then it is read back to verify that the pattern
matches. If so then this test passes. The third test also writes the test
pattern to the screen but without any of the attributes so what you should
see is text displayed normally. A trade off with the attributes is that you
have the underline capability only with the monochrome and color only with
the color display.
Functions eleven, twelve, and thirteen are used for graphics. Function eleven
sets the color palette. The test should cycle through sixteen colors. You
will need to verify this. Function twelve handles writing dots or pixels to
the screen at a particular row and column. The test should draw a box on the
screen. To verify that the test did this it will read back all the dots which
make up the box, please be patient while the test does this. If they are all
read back successfully then the test passes. Function thirteen handles
reading the color of a dot at some position. This test should draw a
different box and if the test reads back each dot that the box is made up of
then the test passes.
Function fourteen handles writing characters to the screen and is similar to
the functions describe above which handle characters. This test uses the same
test pattern as used in the above test. If the